home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 6 / coreaids.zip / DATE_GET.ASM < prev    next >
Assembly Source File  |  1987-06-25  |  1KB  |  67 lines

  1. ;    DESC:    Gets the system date                                 V1.00
  2. ;    OUT:    *{SEG_VAL} segment and
  3. ;        *{OFFSET} offset of system date in format MM/DD/YY
  4. ;    SAMPLE:    Callm    DATE_GET,<SEG_VAL,OFFSET>,
  5. ;    ##################################################################
  6.  
  7. DATE_GED    Segment Para Public 'DATA'
  8. MONTH        DW    0
  9.         DB    '/'
  10. DAY        DW    0
  11.         DB    '/'
  12. YEAR        DW    0
  13.         DB    0
  14. DATE_GED    Ends
  15.  
  16.     Extrn    HEX_ASC:Near
  17.     Extrn    PUSHALL:Near
  18.     Extrn    POPALL:Near
  19.  
  20. DATE_GEC    Segment
  21.     Assume    CS:DATE_GEC,DS:DATE_GED
  22.     Public    DATE_GET
  23.  
  24.     Include    CALLM.MAC
  25.  
  26.                         ;notice.
  27.     DB    'DATE_GET - V1.00, Copyright 1987, CoreTechs   ',0DH,0AH
  28.  
  29. DATE_GET    Proc    Near
  30.  
  31.     Call    PUSHALL                ;save registers.
  32.  
  33.     Mov    AX,DATE_GED            ;setup workarea.
  34.     Mov    DS,AX
  35.  
  36.     Mov    AH,2AH                ;get system date.
  37.     Int    21H
  38.  
  39.     Xor    AX,AX                ;isolate month.
  40.     Mov    AL,DH
  41.     Callm    HEX_ASC,<0,AX>,<AX,AX,AX,AX,AX>    ;convert month to ASCII.
  42.     Xchg    AH,AL                ;flip bytes for storage.
  43.     Mov    MONTH,AX
  44.  
  45.     Xor    AX,AX                ;isolate day.
  46.     Mov    AL,DL
  47.     Callm    HEX_ASC,<0,AX>,<AX,AX,AX,AX,AX>    ;convert day to ASCII.
  48.     Xchg    AH,AL                ;flip bytes for storage.
  49.     Or    AX,3030H            ;change blanks to 0's.
  50.     Mov    DAY,AX
  51.  
  52.     Sub    CX,1900
  53.     Callm    HEX_ASC,<0,CX>,<AX,AX,AX,AX,AX>    ;convert year to ASCII.
  54.     Xchg    AH,AL                ;flip bytes for storage.
  55.     Or    AX,3030H            ;change blanks to 0's.
  56.     Mov    YEAR,AX
  57.  
  58.     Mov    DX,OFFSET MONTH            ;return location of ASCII
  59.     Push    DX                ;date.
  60.     Push    DS
  61.  
  62.     Call    POPALL                ;recover registers.
  63.     Ret
  64. DATE_GET    Endp
  65. DATE_GEC    Ends
  66.     End
  67.